/*
 Copyright (c) 2013 Plausible Labs Cooperative, Inc. All rights reserved.
 Copyright (c) 2008-2011 Apple Inc. All rights reserved.
 
 This file contains Original Code and/or Modifications of Original Code
 as defined in and that are subject to the Apple Public Source License
 Version 2.0 (the 'License'). You may not use this file except in
 compliance with the License. Please obtain a copy of the License at
 http://www.opensource.apple.com/apsl/ and read it before using this
 file.
 
 The Original Code and all software distributed under the License are
 distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 Please see the License for the specific language governing rights and
 limitations under the License.
 */

#ifdef __x86_64__

# TEST-OPTIONS:  unwind_test_main.c unwind_test_x86_64.s -arch x86_64
# TEST-OPTIONS:  unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -Wl,-no_compact_unwind

.data
.globl _unwind_tester_list_x86_64_frameless_big
_unwind_tester_list_x86_64_frameless_big:
.quad	_unwind_test_x86_64_frameless_big_no_reg
.quad	_unwind_test_x86_64_frameless_big_rbx
.quad	_unwind_test_x86_64_frameless_big_rbx_r12
.quad	_unwind_test_x86_64_frameless_big_rbx_r12_r13
.quad	_unwind_test_x86_64_frameless_big_rbx_r12_r13_r14
.quad	_unwind_test_x86_64_frameless_big_rbx_r12_r13_r14_r15
.quad	_unwind_test_x86_64_frameless_big_rbx_rbp
.quad	_unwind_test_x86_64_frameless_big_rbx_rbp_r12
.quad	_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13
.quad	_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14
.quad	_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14_r15
.quad	0


.text


.globl _unwind_test_x86_64_frameless_big_no_reg
_unwind_test_x86_64_frameless_big_no_reg:
LFB13:
subq	$160008, %rsp
LCFI0:
call	_uwind_to_main
addq	$160008, %rsp
ret
LFE13:



.globl _unwind_test_x86_64_frameless_big_rbx
_unwind_test_x86_64_frameless_big_rbx:
LFB10:
pushq	%rbx
LCFI3:
subq	$160000, %rsp
LCFI4:
movq	$0, %rbx
call	_uwind_to_main
addq	$160000, %rsp
popq	%rbx
ret
LFE10:


.globl _unwind_test_x86_64_frameless_big_rbx_r12
_unwind_test_x86_64_frameless_big_rbx_r12:
LFB8:
movq	%rbx, -16(%rsp)
LCFI7:
movq	%r12, -8(%rsp)
LCFI8:
subq	$160024, %rsp
LCFI9:
movq	$0, %rbx
movq	$0, %r12
call	_uwind_to_main
movq	160008(%rsp), %rbx
movq	160016(%rsp), %r12
addq	$160024, %rsp
ret
LFE8:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp
_unwind_test_x86_64_frameless_big_rbx_rbp:
LFB7:
movq	%rbx, -16(%rsp)
LCFI10:
movq	%rbp, -8(%rsp)
LCFI11:
subq	$160024, %rsp
LCFI12:
movq	$0, %rbp
movq	$0, %rbx
call	_uwind_to_main
movq	160008(%rsp), %rbx
movq	160016(%rsp), %rbp
addq	$160024, %rsp
ret
LFE7:


.globl _unwind_test_x86_64_frameless_big_rbx_r12_r13
_unwind_test_x86_64_frameless_big_rbx_r12_r13:
LFB6:
movq	%rbx, -24(%rsp)
LCFI13:
movq	%r12, -16(%rsp)
LCFI14:
movq	%r13, -8(%rsp)
LCFI15:
subq	$160024, %rsp
LCFI16:
movq	$0, %rbx
movq	$0, %r12
movq	$0, %r13
call	_uwind_to_main
movq	160000(%rsp), %rbx
movq	160008(%rsp), %r12
movq	160016(%rsp), %r13
addq	$160024, %rsp
ret
LFE6:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp_r12
_unwind_test_x86_64_frameless_big_rbx_rbp_r12:
LFB9:
movq	%rbx, -24(%rsp)
movq	%rbp, -16(%rsp)
movq	%r12, -8(%rsp)
subq	$160024, %rsp
LCFI9a:
movq	$0, %rbx
movq	$0, %rbp
movq	$0, %r12
call	_uwind_to_main
movq	160000(%rsp), %rbx
movq	160008(%rsp), %rbp
movq	160016(%rsp), %r12
addq	$160024, %rsp
ret
LFE9:




.globl _unwind_test_x86_64_frameless_big_rbx_r12_r13_r14
_unwind_test_x86_64_frameless_big_rbx_r12_r13_r14:
LFB4:
movq	%rbx, -32(%rsp)
LCFI21:
movq	%r12, -24(%rsp)
LCFI22:
movq	%r13, -16(%rsp)
LCFI23:
movq	%r14, -8(%rsp)
LCFI24:
subq	$160040, %rsp
LCFI25:
movq	$0, %rbx
movq	$0, %r12
movq	$0, %r13
movq	$0, %r14
call	_uwind_to_main
movq	160008(%rsp), %rbx
movq	160016(%rsp), %r12
movq	160024(%rsp), %r13
movq	160032(%rsp), %r14
addq	$160040, %rsp
ret
LFE4:


.globl _unwind_test_x86_64_frameless_big_rbx_r12_r13_r14_r15
_unwind_test_x86_64_frameless_big_rbx_r12_r13_r14_r15:
LFB3:
movq	%rbx, -40(%rsp)
LCFI26:
movq	%r12, -32(%rsp)
LCFI27:
movq	%r13, -24(%rsp)
LCFI28:
movq	%r14, -16(%rsp)
LCFI29:
movq	%r15, -8(%rsp)
LCFI30:
subq	$160040, %rsp
LCFI31:
movq	$0, %rbx
movq	$0, %r12
movq	$0, %r13
movq	$0, %r14
movq	$0, %r15
call	_uwind_to_main
movq	160000(%rsp), %rbx
movq	160008(%rsp), %r12
movq	160016(%rsp), %r13
movq	160024(%rsp), %r14
movq	160032(%rsp), %r15
addq	$160040, %rsp
ret
LFE3:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14_r15
_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14_r15:
LFB2:
movq	%rbx, -48(%rsp)
LCFI32:
movq	%rbp, -40(%rsp)
LCFI33:
movq	%r12, -32(%rsp)
LCFI34:
movq	%r13, -24(%rsp)
LCFI35:
movq	%r14, -16(%rsp)
LCFI36:
movq	%r15, -8(%rsp)
LCFI37:
subq	$160072, %rsp
LCFI38:
movq	$0, %rbx
movq	$0, %rbp
movq	$0, %r12
movq	$0, %r13
movq	$0, %r14
movq	$0, %r15
call	_uwind_to_main
movq	160024(%rsp), %rbx
movq	160032(%rsp), %rbp
movq	160040(%rsp), %r12
movq	160048(%rsp), %r13
movq	160056(%rsp), %r14
movq	160064(%rsp), %r15
addq	$160072, %rsp
ret
LFE2:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13
_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13:
LFB457:
movq	%rbx, -32(%rsp)
LCFI18:
movq	%rbp, -24(%rsp)
LCFI19:
movq	%r12, -16(%rsp)
movq	%r13, -8(%rsp)
subq	$160040, %rsp
LCFI20:
movq	$0, %rbx
movq	$0, %rbp
movq	$0, %r12
movq	$0, %r13
call	_uwind_to_main
movq	160008(%rsp), %rbx
movq	160016(%rsp), %rbp
movq	160024(%rsp), %r12
movq	160032(%rsp), %r13
addq	$160040, %rsp
ret
LFE457:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14
_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14:
LFB17:
movq	%rbx, -40(%rsp)
movq	%rbp, -32(%rsp)
movq	%r12, -24(%rsp)
movq	%r13, -16(%rsp)
movq	%r14, -8(%rsp)
subq	$160040, %rsp
LFB17a:
movq	$0, %rbx
movq	$0, %rbp
movq	$0, %r12
movq	$0, %r13
movq	$0, %r14
call	_uwind_to_main
movq	160000(%rsp), %rbx
movq	160008(%rsp), %rbp
movq	160016(%rsp), %r12
movq	160024(%rsp), %r13
movq	160032(%rsp), %r14
addq	$160040, %rsp
ret
LFE17:


.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
.set L$set$0,LECIE1-LSCIE1
.long L$set$0	# Length of Common Information Entry
LSCIE1:
.long	0x0	# CIE Identifier Tag
.byte	0x1	# CIE Version
.ascii "zR\0"	# CIE Augmentation
.byte	0x1	# uleb128 0x1; CIE Code Alignment Factor
.byte	0x78	# sleb128 -8; CIE Data Alignment Factor
.byte	0x10	# CIE RA Column
.byte	0x1	# uleb128 0x1; Augmentation size
.byte	0x10	# FDE Encoding (pcrel)
.byte	0xc	# DW_CFA_def_cfa
.byte	0x7	# uleb128 0x7
.byte	0x8	# uleb128 0x8
.byte	0x90	# DW_CFA_offset, column 0x10
.byte	0x1	# uleb128 0x1
.align 3
LECIE1:

.globl _unwind_test_x86_64_frameless_big_no_reg.eh
_unwind_test_x86_64_frameless_big_no_reg.eh:
LSFDE3:
.set L$set$3,LEFDE3-LASFDE3
.long L$set$3	# FDE Length
LASFDE3:
.long	LASFDE3-EH_frame1	# FDE CIE offset
.quad	LFB13-.	# FDE initial location
.set L$set$4,LFE13-LFB13
.quad L$set$4	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$5,LCFI0-LFB13
.long L$set$5
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0x90,0xe2,0x9	# uleb128 0x27110
.align 3
LEFDE3:


.globl _unwind_test_x86_64_frameless_big_rbx.eh
_unwind_test_x86_64_frameless_big_rbx.eh:
LSFDE9:
.set L$set$12,LEFDE9-LASFDE9
.long L$set$12	# FDE Length
LASFDE9:
.long	LASFDE9-EH_frame1	# FDE CIE offset
.quad	LFB10-.	# FDE initial location
.set L$set$13,LFE10-LFB10
.quad L$set$13	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$14,LCFI3-LFB10
.long L$set$14
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0x10	# uleb128 0x10
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$15,LCFI4-LCFI3
.long L$set$15
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0x90,0xe2,0x9	# uleb128 0x27110
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x2	# uleb128 0x2
.align 3
LEFDE9:


.globl _unwind_test_x86_64_frameless_big_rbx_r12.eh
_unwind_test_x86_64_frameless_big_rbx_r12.eh:
LSFDE13:
.set L$set$20,LEFDE13-LASFDE13
.long L$set$20	# FDE Length
LASFDE13:
.long	LASFDE13-EH_frame1	# FDE CIE offset
.quad	LFB8-.	# FDE initial location
.set L$set$21,LFE8-LFB8
.quad L$set$21	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$22,LCFI9-LFB8
.long L$set$22
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xa0,0xe2,0x9	# uleb128 0x27120
.byte	0x8c	# DW_CFA_offset, column 0xc
.byte	0x2	# uleb128 0x2
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x3	# uleb128 0x3
.align 3
LEFDE13:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp.eh
_unwind_test_x86_64_frameless_big_rbx_rbp.eh:
LSFDE14:
.set L$set$23,LEFDE14-LASFDE14
.long L$set$23	# FDE Length
LASFDE14:
.long	LASFDE14-EH_frame1	# FDE CIE offset
.quad	LFB7-.	# FDE initial location
.set L$set$24,LFE7-LFB7
.quad L$set$24	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$25,LCFI12-LFB7
.long L$set$25
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xa0,0xe2,0x9	# uleb128 0x27120
.byte	0x86	# DW_CFA_offset, column 0x6
.byte	0x2	# uleb128 0x2
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x3	# uleb128 0x3
.align 3
LEFDE14:


.globl _unwind_test_x86_64_frameless_big_rbx_r12_r13.eh
_unwind_test_x86_64_frameless_big_rbx_r12_r13.eh:
LSFDE17:
.set L$set$26,LEFDE17-LASFDE17
.long L$set$26	# FDE Length
LASFDE17:
.long	LASFDE17-EH_frame1	# FDE CIE offset
.quad	LFB6-.	# FDE initial location
.set L$set$27,LFE6-LFB6
.quad L$set$27	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$28,LCFI16-LFB6
.long L$set$28
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xa0,0xe2,0x9	# uleb128 0x27120
.byte	0x8d	# DW_CFA_offset, column 0xd
.byte	0x2	# uleb128 0x2
.byte	0x8c	# DW_CFA_offset, column 0xc
.byte	0x3	# uleb128 0x3
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x4	# uleb128 0x4
.align 3
LEFDE17:



.globl _unwind_test_x86_64_frameless_big_rbx_r12_r13_r14.eh
_unwind_test_x86_64_frameless_big_rbx_r12_r13_r14.eh:
LSFDE21:
.set L$set$32,LEFDE21-LASFDE21
.long L$set$32	# FDE Length
LASFDE21:
.long	LASFDE21-EH_frame1	# FDE CIE offset
.quad	LFB4-.	# FDE initial location
.set L$set$33,LFE4-LFB4
.quad L$set$33	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$34,LCFI25-LFB4
.long L$set$34
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xb0,0xe2,0x9	# uleb128 0x27130
.byte	0x8e	# DW_CFA_offset, column 0xe
.byte	0x2	# uleb128 0x2
.byte	0x8d	# DW_CFA_offset, column 0xd
.byte	0x3	# uleb128 0x3
.byte	0x8c	# DW_CFA_offset, column 0xc
.byte	0x4	# uleb128 0x4
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x5	# uleb128 0x5
.align 3
LEFDE21:


.globl _unwind_test_x86_64_frameless_big_rbx_r12_r13_r14_r15.eh
_unwind_test_x86_64_frameless_big_rbx_r12_r13_r14_r15.eh:
LSFDE23:
.set L$set$35,LEFDE23-LASFDE23
.long L$set$35	# FDE Length
LASFDE23:
.long	LASFDE23-EH_frame1	# FDE CIE offset
.quad	LFB3-.	# FDE initial location
.set L$set$36,LFE3-LFB3
.quad L$set$36	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$37,LCFI31-LFB3
.long L$set$37
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xb0,0xe2,0x9	# uleb128 0x27130
.byte	0x8f	# DW_CFA_offset, column 0xf
.byte	0x2	# uleb128 0x2
.byte	0x8e	# DW_CFA_offset, column 0xe
.byte	0x3	# uleb128 0x3
.byte	0x8d	# DW_CFA_offset, column 0xd
.byte	0x4	# uleb128 0x4
.byte	0x8c	# DW_CFA_offset, column 0xc
.byte	0x5	# uleb128 0x5
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x6	# uleb128 0x6
.align 3
LEFDE23:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14_r15.eh
_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14_r15.eh:
LSFDE25:
.set L$set$38,LEFDE25-LASFDE25
.long L$set$38	# FDE Length
LASFDE25:
.long	LASFDE25-EH_frame1	# FDE CIE offset
.quad	LFB2-.	# FDE initial location
.set L$set$39,LFE2-LFB2
.quad L$set$39	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$40,LCFI38-LFB2
.long L$set$40
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xd0,0xe2,0x9	# uleb128 0x27150
.byte	0x8f	# DW_CFA_offset, column 0xf
.byte	0x2	# uleb128 0x2
.byte	0x8e	# DW_CFA_offset, column 0xe
.byte	0x3	# uleb128 0x3
.byte	0x8d	# DW_CFA_offset, column 0xd
.byte	0x4	# uleb128 0x4
.byte	0x8c	# DW_CFA_offset, column 0xc
.byte	0x5	# uleb128 0x5
.byte	0x86	# DW_CFA_offset, column 0x6
.byte	0x6	# uleb128 0x6
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x7	# uleb128 0x7
.align 3
LEFDE25:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13.eh
_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13.eh:
LSFDE11:
.set L$set$17a,LEFDE11-LASFDE11
.long L$set$17a	# FDE Length
LASFDE11:
.long	LASFDE11-EH_frame1	# FDE CIE offset
.quad	LFB457-.	# FDE initial location
.set L$set$18a,LFE457-LFB457
.quad L$set$18a	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$19a,LCFI20-LFB457
.long L$set$19a
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xb0,0xe2,0x9	# uleb128 0x27130
.byte	0x8d	# DW_CFA_offset, column 0xd
.byte	0x2	# uleb128 0x2
.byte	0x8c	# DW_CFA_offset, column 0xc
.byte	0x3	# uleb128 0x3
.byte	0x86	# DW_CFA_offset, column 0x6
.byte	0x4	# uleb128 0x4
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x5	# uleb128 0x5
.align 3
LEFDE11:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14.eh
_unwind_test_x86_64_frameless_big_rbx_rbp_r12_r13_r14.eh:
LSFDE7:
.set L$set$35a,LEFDE7-LASFDE7
.long L$set$35a	# FDE Length
LASFDE7:
.long	LASFDE7-EH_frame1	# FDE CIE offset
.quad	LFB17-.	# FDE initial location
.set L$set$36a,LFE17-LFB17
.quad L$set$36a	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$37a,LFB17a-LFB17
.long L$set$37a
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xb0,0xe2,0x9	# uleb128 0x27130
.byte	0x8e	# DW_CFA_offset, column 0xe
.byte	0x2	# uleb128 0x2
.byte	0x8d	# DW_CFA_offset, column 0xd
.byte	0x3	# uleb128 0x3
.byte	0x8c	# DW_CFA_offset, column 0xc
.byte	0x4	# uleb128 0x4
.byte	0x86	# DW_CFA_offset, column 0x6
.byte	0x5	# uleb128 0x5
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x6	# uleb128 0x6
.align 3
LEFDE7:


.globl _unwind_test_x86_64_frameless_big_rbx_rbp_r12.eh
_unwind_test_x86_64_frameless_big_rbx_rbp_r12.eh:
LSFDE19:
.set L$set$26a,LEFDE19-LASFDE19
.long L$set$26a	# FDE Length
LASFDE19:
.long	LASFDE19-EH_frame1	# FDE CIE offset
.quad	LFB9-.	# FDE initial location
.set L$set$27a,LFE9-LFB9
.quad L$set$27a	# FDE address range
.byte	0x0	# uleb128 0x0; Augmentation size
.byte	0x4	# DW_CFA_advance_loc4
.set L$set$28a,LCFI9a-LFB9
.long L$set$28a
.byte	0xe	# DW_CFA_def_cfa_offset
.byte	0xa0,0xe2,0x9	# uleb128 0x27120
.byte	0x8c	# DW_CFA_offset, column 0xc
.byte	0x2	# uleb128 0x2
.byte	0x86	# DW_CFA_offset, column 0x6
.byte	0x3	# uleb128 0x3
.byte	0x83	# DW_CFA_offset, column 0x3
.byte	0x4	# uleb128 0x4
.align 3
LEFDE19:



.subsections_via_symbols

#endif /* __x86_64__ */
